package busco

import "wails/schema/enums/busenum"

// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费
type B消费 struct {
	// @alias 名称
	M名称 string
	// @alias 描述
	M描述 string
	// @alias 图标
	T图标 string `link:"图标"`
	// @alias 标旗
	B标旗 map[J奖励标旗]bool
	// 界面上显示的数量，可以是数字，也可以是文字，例如若干，大量等
	// @alias 显示
	X显示 string
	// @alias 标识
	B标识 string `alias:"标识"`
}

// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费_数量
type B消费_数量 struct {
	B消费
	// @alias 消费
	X消费 string `link:"消费"`
	// @alias 数量
	S数量 int `value:"1.0"`
}
type S消费列表项 struct {
	// @alias 消费
	X消费 string `link:"消费"`
	// @alias 数量
	S数量 float64 `value:"1.0"`
}

// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费_集合
type B消费_集合 struct {
	B消费

	// @alias 消费集
	X消费集 map[string]*S消费列表项
}

// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费_得分
type B消费_得分 struct {
	B消费

	// @alias 得分
	D得分 *S查找得分
}

// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费_卡片
type B消费_卡片 struct {
	B消费
	// @alias 卡片
	K卡片 *S查找卡片
}

// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费_充能
type B消费_充能 struct {
	B消费

	// @alias 最大
	// 充能的最大数
	Z最大值 float64

	// @alias 初始值
	// 充能的初始次数
	C初始值 float64

	// @alias 使用量
	// 使用会消耗的充能数
	M使用量 float64

	// 充能位置
	// @alias 位置
	W位置 busenum.C充能位置

	// 表示游戏开始后，游戏时间超过设定的[开始时间]后，能量才开始充能
	// 距离主体开始时间
	// 未实现,需要考虑不同开始时间的情况, 例如使用的是开服时间、注册时间、还是创建时间
	// @alias 开始充能时间
	K开始充能时间 string

	// @alias 充能时间
	// 充能一点需要的时间
	L充能时间 float64
}

// 位置相同，标识相同可以共享冷却
// @schema_export --ident=schema --json --config=消费
// @schema_go
// @cache_go
// @cache_ts
// @alias 消费_冷却
type B消费_冷却 struct {
	B消费
	// @alias 位置
	// 该冷却时间被应用到的位置。
	W位置 busenum.L冷却位置

	// @alias 开始时间
	// 表示游戏开始后，游戏时间超过设定的[开始时间]后，才能使用技能
	K开始时间 float64

	// @alias 冷却时间
	// 表示使用技能后，消耗的时间，即冷却持续的时间
	L冷却时间 float64

	// 冷却的最大次数
	// 超过最大次数后，无法在使用，只能通过【执行】重置
	// @alias 最大值
	Z最大值 int
}
